home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / s_to_z / tvalid / genmain.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-09-15  |  2.2 KB  |  114 lines

  1. unit Genmain;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, Buttons, Mask, ValMisc;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Label3: TLabel;
  14.     UserNameEdit: TEdit;
  15.     RegNoEdit: TEdit;
  16.     CopyButton: TBitBtn;
  17.     CloseButton: TBitBtn;
  18.     RandSeedEdit: TMaskEdit;
  19.     procedure RandSeedEditExit(Sender: TObject);
  20.     procedure CopyButtonClick(Sender: TObject);
  21.     procedure UserNameEditExit(Sender: TObject);
  22.   private
  23.     { Private declarations }
  24.     procedure Calculate;
  25.   public
  26.     { Public declarations }
  27.   end;
  28.  
  29. var
  30.   Form1: TForm1;
  31.  
  32. implementation
  33.  
  34. {$R *.DFM}
  35.  
  36. procedure TForm1.Calculate;
  37. var
  38.   Seed : LongInt;
  39.   UserName,RegNo : string;
  40. begin
  41.   UserName:=Trim(UserNameEdit.Text);
  42.   if UserName='' then
  43.   begin
  44.     ErrorMessage('User name field must be completed');
  45.     exit;
  46.   end;
  47.   try
  48.     Seed:=StrToInt(Trim(RandSeedEdit.Text));
  49.   except
  50.     on EConvertError do
  51.     begin
  52.       raise;
  53.       RandSeedEdit.Text:='0';
  54.       exit;
  55.     end;
  56.   end;
  57.   RegNo:=RegCode(Seed,UserName);
  58.   RegNoEdit.Text:=RegNo;
  59. end;
  60.  
  61. procedure TForm1.RandSeedEditExit(Sender: TObject);
  62. var
  63.   s : string;
  64.   i : LongInt;
  65. begin
  66.   s:=RandSeedEdit.Text;
  67.   while (Length(s)>1) and (s[1] in ['0',' ']) do
  68.     Delete(s,1,1);
  69.   s:=Trim(s);
  70.   try
  71.     i:=StrToInt(s);
  72.   except
  73.     i:=0;
  74.   end;
  75.   RandSeedEdit.Text:=IntToStr(i);
  76.   if Trim(UserNameEdit.Text)<>'' then Calculate;
  77. end;
  78.  
  79. procedure TForm1.CopyButtonClick(Sender: TObject);
  80. begin
  81.   with RegNoEdit do
  82.   begin
  83.     SelectAll;
  84.     CopyToClipboard;
  85.     ClearSelection;
  86.   end;
  87. end;
  88.  
  89. procedure TForm1.UserNameEditExit(Sender: TObject);
  90. var
  91.   TempName : string;
  92.   TempNameLen : byte absolute TempName;
  93.   ValidChars,i : byte;
  94. begin
  95.   TempName:=UpperCase(UserNameEdit.Text);
  96.   ValidChars:=0;
  97.   i:=1;
  98.   while i<=TempNameLen do
  99.   begin
  100.     if UpCase(TempName[i]) in ['A'..'Z','0'..'9'] then
  101.        Inc(ValidChars);
  102.     Inc(i);
  103.   end;
  104.   if ValidChars<3 then
  105.   begin
  106.     ErrorMessage('User Name must contain more than 2 alphanumeric characters');
  107.     UserNameEdit.Text:='';
  108.     Exit;
  109.   end;
  110.   if Trim(UserNameEdit.Text)<>'' then Calculate;
  111. end;
  112.  
  113. end.
  114.